﻿using System.Collections;
using System.Collections.Generic;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
using UnityEngine;

public class GameObjectDoc : DocPrimitive
{
	[YamlMember(Alias = "GameObject", ApplyNamingConventions = false)]
	public GameObjectObj goo { get; set; }
}

public class GameObjectCom
{
	public Dictionary<string, string> component { get; set; }
};

public class GameObjectObj
{
	[YamlMember(Alias = "m_ObjectHideFlags", ApplyNamingConventions = false)]
	public int objectHideFlags { get; set; }

    // use string because most time, the value is a guid
    [YamlMember(Alias = "m_PrefabParentObject", ApplyNamingConventions = false)]
	public Dictionary<string, string> prefabParent { get; set; } 

	[YamlMember(Alias = "m_PrefabInternal", ApplyNamingConventions = false)]
	public Dictionary<string, int> prefabInternal { get; set; }

	[YamlMember(Alias = "serializedVersion", ApplyNamingConventions = false)]
	public int serializedVersion { get; set; }

	[YamlMember(Alias = "m_Component", ApplyNamingConventions = false)]
	public List<GameObjectCom> components { get; set; }

	[YamlMember(Alias = "m_Layer", ApplyNamingConventions = false)]
	public int layer { get; set; }

	[YamlMember(Alias = "m_Name", ApplyNamingConventions = false)]
	public string name { get; set; }

	[YamlMember(Alias = "m_TagString", ApplyNamingConventions = false)]
	public string tag { get; set; }

	[YamlMember(Alias = "m_Icon", ApplyNamingConventions = false)]
	public Dictionary<string, int> icon { get; set; }

	[YamlMember(Alias = "m_NavMeshLayer", ApplyNamingConventions = false)]
	public int navmeshLayer { get; set; }

	[YamlMember(Alias = "m_StaticEditorFlags", ApplyNamingConventions = false)]
	public uint staticEditorFlags { get; set; }

	[YamlMember(Alias = "m_IsActive", ApplyNamingConventions = false)]
	public int actived { get; set; }
}

